#include <stdio.h>
#include "seq_list.cpp"

// 递增有序 找x 若找到并与其后继交换 若找不到插入并保持有序
void Swap(int &i , int &j) {
    int temp = i;
    i = j;
    j = temp;
}

void FindX(SeqList &L, int x) {
    int temp = 0;
    bool flag = false;
    for (int i = 0; i < L.length; i++) {
        if (L.data[i] == x) {
            Swap(L.data[i], L.data[i+1]);
            break;
        } else if (L.data[i] > x) {
            // x 元素不存在
            if (flag) {
                Swap(L.data[i],temp);
            } else {
                temp = L.data[i];
                L.data[i] = x;
                flag = true;
            }
        }
    }
    if (flag) {
        ListAppend(L,temp);
    }
}



int main() {
    SeqList L;
    int data[10] = {1,2,3,4,5,6,7};
    L.data = data;
    L.length = 7;

    FindX(L, 5);

    for (int i = 0; i < L.length; i++)
        printf("%d ", L.data[i]);
    printf("\n");

    return 0;
}